Skip to content

Add WebAssembly SIMD SGEMM and DGEMM kernels#5680

Merged
martin-frbg merged 1 commit intoOpenMathLib:developfrom
teddygood:wasm128-generic-target-exp
Mar 17, 2026
Merged

Add WebAssembly SIMD SGEMM and DGEMM kernels#5680
martin-frbg merged 1 commit intoOpenMathLib:developfrom
teddygood:wasm128-generic-target-exp

Conversation

@teddygood
Copy link
Contributor

Follow-up to #5676 and #4023

This PR adds a WebAssembly SIMD GEMM kernel for WASM128_GENERIC and wires it up for SGEMM / DGEMM only. The generic packing paths are unchanged.

The kernel keeps the existing generic 2x2 GEMM structure and replaces the hot inner loop with wasm_simd128.h intrinsics.

In a Pyodide/Emscripten validation setup, sgemm / dgemm correctness passed, and the kernel outperformed the current generic -msimd128 baseline by about 4.1x-4.5x for sgemm and 2.2x-2.4x for dgemm.

@martin-frbg martin-frbg added this to the 0.3.32 milestone Mar 17, 2026
@martin-frbg martin-frbg merged commit 7a95460 into OpenMathLib:develop Mar 17, 2026
100 of 102 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants